Field of the Invention
The present invention relates to database query processing and more particularly to database query processing in an in memory data grid (IMDG).
Description of the Related Art
Database query processing refers to the receipt and execution of data queries against a database. Flat file databases generally process queries in accordance with a key used to locate matching records and to return the matching records to the requestor. To the extent that data is to be culled from different related records, a series of queries are required to located different keys in different database tables so as to ultimately return the desired set of data. Relational databases improve upon flat file databases by permitting the logical joining together of different tables so as to execute a single query against the joined set of tables in order to produce a desired set of data.
An in memory data grid (IMDG) is a highly distributable form of a database that permits parallel processing across a set of disparately located computing devices. The use of an IMDG permits substantial parallelization of database operations and, in consequence, efficient utilization of unused processing resources in each host computing device supporting the IMDG. To the extent that data in the IMDG is highly distributed, relational database concepts cannot be effectively applied. Thus, though highly scalable, database operations in an IMDG are substantially granular and numerous in comparison to that of a traditional relational database.
In many cases, users of an IMDG must apply a continuous query to the application objects in the IMDG. That is to say, whenever an object is inserted into, updated in, or removed from an IMDG, users may choose to apply a query to the object and to acquire a returned result of the query. While simple queries, such as checking the value of a single application object attribute, do not threaten to significantly diminish performance, complex or nested queries may have a notable performance and scalability impact when continually applied in the IMDG. As performance and scalability are two expected benefits of an IMDG implementation, the execution of continuous queries can serve to undermine the value of the entire grid.